package com.xygz.orm;

import com.xygz.orm.enums.DbType;
import com.xygz.orm.exception.ORMException;

import java.io.Serializable;
import java.sql.SQLException;

/**
 * SQL 片段接口
 *
 * @author xiyuan-lgz 2023-08-16 @version v1.0.0 新建与整理
 */
@SuppressWarnings("all")
public interface SQLSegment extends Serializable {
    
    /**
     * 生成SQL 语句
     *
     * @param dbType        数据库类型
     * @return              SQL字符串
     * @throws SQLException 异常信息
     * @throws ORMException 异常信息
     */
    default public String toSQL(DbType dbType) throws SQLException, ORMException {
        throw new SQLException(dbType.getType() + "不支持的SQL 语法");
    }
}
